Product : ISaGRAF 3.xx

Date    : 7-February-1996

File    : CMPlimitations.How to inihibit some features at compiling level.doc

Subject : how to inihibit some features at compiling level

Keywords: .rsc file - target resource

_____________________________________________________________________

Overview

The ISaGRAF Workbench can generate code for and communicate with different types of targets (intel, motorola, real target, simulator...). The list of the known targets and their description is stored in ASCII files located in the ISaGRAF EXE sub-directory.

For the ISaGRAF Workbench, each type of target is called a target resource.

This document covers the detailed syntax of target resource definition and description files. Such files are designed and maintained by ICS Triplex ISaGRAF Inc. They cannot be modified, copied or adapted by distributors, VARs, OEMs and end customers.

Declaring target resources

The ISaGRAF Workbench can operate on one or several target resources. All the known resources are declared in the file RSCDEF.rsc located in the ISaGRAF EXE sub-directory.

Declaring target resources must conform to the following rules:

The number of declared target resources is not limited by the ISaGRAF Workbench. However, a maximum number of 3 target resources can be selected for the same compiling session.

Below is an example of RSCDEF.rsc file contents:

* file: RSCDEF.rsc

* meaning: target resources definition

Resource=SIMULATE.rsc

Resource=ISA68M.rsc

Resource=ISA86M.rsc

* end of file

 

Target resource definition file

Each target resource is described in an ASCII file, suffixed with ".RSC" extension, and located in the ISaGRAF EXE sub-directory. The name of this file must be declared as a known resource in the RSCDEF.rsc file.

A target resource definition file is a list of directives and options. It must conform to the following lexical rules:

Below is the list of available directives:

Name Logical name of the target. This name appears in the list of targets, in the "Compiler options" dialog box. This name is also used by the target system to accept or deny a dowloaded code. It is generally the same name as the prefix of the attached RSC file. The maximum length is 8 characters, the first character must be a letter.

Exemple: Name=ISA86M

Version Version number of the target definition. The version is used by the target system to accept or deny a downloaded code. It is expressed on 4 digits, according to the "X.YZ" format.

Exemple: Version=1.00

Comment Free comment text. This text completes the target name in the list of targets, in the "Compiler options" dialog box. It is not stored in the downloaded code. The length of the comment text is limited to 50 characters.

Exemple: Comment=TIC code for Intel (medium)

Obj Suffix of the object files corresponding to the target code, stored in the ISaGRAF project directory. It must be expressed on 4 characters, including a leading dot, according to the ".Rxy" format. The first letter of the suffix must be "R". Suffixes ".RWS" and ".RBC" are reserved for the standard Workbench, and cannot be used to identify a new target.

Exemple: Obj=.R8M

Exe Suffix of the downloaded executable file corresponding to the target code, stored in the ISaGRAF project directory. It must be expressed on 4 characters, including a leading dot, according to the ".Xxy" format. The first letter of the suffix must be "X". Suffix ".XWS" is reserved for the standard Workbench, and cannot be used to identify a new target.

Exemple: Obj=.X8M

Code Defines the type of generated code. It can take one of the following values:

ISA: Independant TIC code

C: C source code

IL: IL source code

68000: MOTOROLA 68000 binary machine code

80X86: INTEL 80X86 binary machine code

The "IL" and "80X86" code models are currently not supported by the ISaGRAF code generator. The "68000" code model is currently dedicated to some OS-9 platforms only.

Exemple: Code=ISA

Model Defines the data model (size of object addresses) for the whole generated code. In the case of the TIC code, it also defines the data model of the binary word containing a TIC microcode. It can take one of the following values:

SMALL: Addresses are expressed on 16 bits.

TIC microcodes are expressed on 8 bits.

MEDIUM: Addresses are expressed on 16 bits.

TIC microcodes are expressed on 16 bits.

LARGE: Addresses are expressed on 32 bits.

TIC microcodes are expressed on 16 bits.

Only the "Medium" data model is actually supported by ISaGRAF TIC targets and in the communication protocol used by the ISaGRAF debugger.

Exemple: Model=MEDIUM

ByteOrder This field represents the byte ordering model for binary storing of data expressed on more than on byte. It can take one of the following values:

LH: LSB is stored at low address (INTEL model).

HL: MSB is stored at low address (MOTOROLA model).

Exemple: ByteOrder=LH

Align Number of bytes for table alignment. This is the minimum size used by one table in the downloaded code. Null characters are used to fill the unused area required for data alignment. It is highly recommended to align data on 4 bytes (32 bits) to prevent any mismatch with the alignment conventions assumed by the C compiler used to implement the target system

Exemple: Align=4

EOLchar It is the list of ASCII codes used by the target host system to represent an end of line in text files. This field is used by the ISaGRAF resource compiler to filter end of line characters while integrating text files in the downloaded resources. End of line can be expressed on one or two characters. Each ASCII code must be expressed in decimal. Characters must be separated by a comma.

Exemple: EOLChar=13,10

Integer It is the maximum size of the integer analog values supported by the target system. The size is expressed in bits and must be preceeded by "INT" prefix. It can be "INT8", "INT16" or "INT32". 32 bit data size is the default model for the ISaGRAF Workbench, and the only one currently supported by ISaGRAF TIC targets. This field is used by the ISaGRAF Code Generator to output an error message when an integer constant expression used in the application leads to a data storing overflow.

Exemple: Integer=INT32

Real This field indicates if the floating real analogs are supported by the target system. Its value can be "YES" or "NO". Errors are generated when compiling a application including declaration of real variables or real constant expressions, if the real data type is not supported by the target.

Exemple: Real=YES

Message This field indicates if the message (string) data type is supported by the target system. Its value can be "YES" or "NO". Errors are generated when compiling a application including declaration of message variables or message constant expressions, if the string data type is not supported by the target.

Exemple: Message=YES

CFunc This field indicates if the integration of user written C functions is supported by the target system. Its value can be "YES" or "NO". Errors are generated when compiling a application including C function calls, if C functions are not supported by the target.

Exemple: CFunc=YES

CBlock This field indicates if the integration of user written C function blocks is supported by the target system. Its value can be "YES" or "NO". Errors are generated when compiling a application including C function block calls, if C function blocks are not supported by the target.

Exemple: CBlock=YES

CConv This field indicates if the integration of user written C conversion functions is supported by the target system. Its value can be "YES" or "NO". Errors are generated when compiling a application including references to a C conversion function, if C conversions are not supported by the target.

Exemple: CConv=YES

CnvTable This field indicates if the integration of conversion tables is supported by the target system. Its value can be "YES" or "NO". Errors are generated when compiling a application including conversion tables, if conversions are not supported by the target.

Exemple: CnvTable=YES

UserAdd This field indicates if the handling of user defined network addresses for variables is supported by the target system. Its value can be "YES" or "NO". Errors are generated when compiling a application including non null network addresses for variables, if network addresses are not supported by the target.

Exemple: UserAdd=YES

Optimizer: The "SM=10", "T1=19", "T2=19", "T3=15", "T4=0", "T5=0", "G1=30", "G2=27", "G3=12" and "G4=27" parameters are reserved for future enhancements of the ISaGRAF code optimizer, and should never be modified.

Options are used by the ISaGRAF Workbench to curstomize the standard graphic interface according to the target possibility. Below is the list of avalaible options:

[NoDownload] If this option appears in the target definition files, the corresponding executable target file cannot be downloaded with the ISaGRAF debugger. It generally applies to a code that is aimed to be post-processed. The locking of the download feature applies to both normal download and On Line modification.

Below is an example of a complete resource definition file:

* file: CC86M.rsc

* meaning: target resource file - for C code generation

* resource identification (only comment appears in workbench menus)

Name=CC86M

Version=1.00

Comment=Code C for Intel (MEDIUM)

* definition of file extensions (for project files)

Obj=.RCC

Exe=.XCC

* code model

Code=C

Model=MEDIUM

ByteOrder=LH

Align=4

* target system

EOLchar=13

* data model according to target capabilities

Integer=INT32

Real=YES

Message=YES

* enhanced features according to target capabilities

CFunc=YES

CBlock=YES

CConv=YES

CnvTable=YES

UserAdd=YES

* optimizer target dependant parameters

SM=10

T1=19

T2=19

T3=15

T4=0

T5=0

G1=30

G2=27

G3=12

G4=27

* options

[NoDownload]

* end of file

_____________________________________________________________________

Copyright © 1996-2009 ICS Triplex ISaGRAF Inc. All rights reserved.